#include <iostream>
#include <mysql/mysql.h>

int main() {
    // 初始化 MySQL 连接
    MYSQL *conn = mysql_init(nullptr);
    if (conn == nullptr) {
        std::cerr << "mysql_init() failed" << std::endl;
        return 1;
    }

    // 连接到 MySQL 服务器
    if (mysql_real_connect(conn, "localhost", "zt", "zt921921", "your_database_name", 0, nullptr, 0) == nullptr) {
        std::cerr << "mysql_real_connect() failed: " << mysql_error(conn) << std::endl;
        mysql_close(conn);
        return 1;
    }

    std::cout << "Connected to MySQL server successfully!" << std::endl;

    // 执行 SQL 查询
    if (mysql_query(conn, "SELECT * FROM your_table_name")) {
        std::cerr << "mysql_query() failed: " << mysql_error(conn) << std::endl;
        mysql_close(conn);
        return 1;
    }

    // 获取查询结果
    MYSQL_RES *result = mysql_store_result(conn);
    if (result == nullptr) {
        std::cerr << "mysql_store_result() failed: " << mysql_error(conn) << std::endl;
        mysql_close(conn);
        return 1;
    }

    // 获取结果集中的列数
    int num_fields = mysql_num_fields(result);

    // 获取结果集中的行
    MYSQL_ROW row;
    while ((row = mysql_fetch_row(result))) {
        for(int i = 0; i < num_fields; i++) {
            std::cout << (row[i] ? row[i] : "NULL") << " ";
        }
        std::cout << std::endl;
    }

    // 释放结果集
    mysql_free_result(result);

    // 关闭连接
    mysql_close(conn);

    return 0;
}    